#!/usr/bin/env node
const path = require('path');
const fs = require('fs');
const fse = require('fs-extra');
const chalk = require('chalk');



// !(async function () {

// print process.argv 前两个一个是 node可执行文件路径，另一个是这个销售价的运行文件
// process.argv.forEach(function (val, index, array) {
//   console.log(index + ': ' + val);
// });

let command = process.argv[2];
let search_gitignoreName = process.argv[3];
let PATH = './';
/* 找到所有 .gitignore结尾的文件 返回数组 */
let gitignoreNameList = fs.readdirSync(__dirname + '/template', 'utf8').filter(item => item.indexOf('.gitignore') !== -1);

// 第三个参数是我们使用的参数
if (command === '--h' || command === 'help') {
  console.log(`
${chalk.green('ywjgitignore  ') + chalk.yellow('--h help') + '\t\t\t查看指令参数'}
${chalk.green('ywjgitignore  ') + chalk.yellow('--l list') + '\t\t\t列出可用的 .gitignore 文件模板'}
${chalk.green('ywjgitignore  ') + chalk.yellow('--s search [任意字符]') + '\t任意字符快速匹配 gitignore 文件名 返回'}
${chalk.green('ywjgitignore  ') + chalk.yellow('--i init   [文件名]') + '\t\t创建 .gitignore search 文件名匹配到的文件名'}
    `);
}

if (command === '--l' || command === 'list') {
  let filterData = gitignoreNameList.map(item => item.replace('.gitignore', '')).join('\n');
  console.log('查看已存在的 gitignore 文件列表', filterData);
}

if (command === '--s' || command === 'search') {
  if (!search_gitignoreName) { console.log(`请输入第三个参数 gitignore --search ${chalk.red('[匹配现有 .gitignore 文件的字符]')}`); }
  let filterData = gitignoreNameList.map(item => item.replace('.gitignore', '')).filter(item => item.indexOf(search_gitignoreName) !== -1);
  console.log('显示字符匹配的gitignore文件名字', filterData);
}

if (command === '--i' || command === 'init') {
  console.log('--init');
  let cppath = path.join(__dirname, 'template/' + process.argv[3] + '.gitignore');

  fs.copyFileSync(cppath, PATH + '/.gitignore');
}

// })()